"""
本章节研究的内容是：
用户登录，客户端生成cookie 并通过response将cookie写到浏览器中


render_template:是一个模板渲染的函数可以将动态数据和静态模板结合起来，最终生成web页面
"""
import datetime

"""
开发步骤：
第一步：先进入首页
第二步：在首页里面获取cookie，然后将获取到的cookie数据通过模板语言渲染到静态页面中
第三步:在登录页面，先获取数据
"""
from flask import Blueprint, render_template, request, redirect

# 创建蓝图
cookie_blue = Blueprint("cookie", __name__)


# 首页
@cookie_blue.route("/home/")
def home():
    # 第一步：获取cookie user是之前设置的key
    username = request.cookies.get("user")
    # 第二步：将动态数据返回到静态页面
    return render_template("home.html", username=username)


# 登录的页面

# 第三步：跳到登录页面
@cookie_blue.route("/login/", methods=["GET", "POST"])
def login():
    if request.method == "GET":
        return render_template("login.html")
    # 第四步：获取登录时候的数据
    elif request.method == "POST":
        # 获取请求的参数
        username = request.form.get("username")
        password = request.form.get("password")
        # 第五步：登录成功，生成cookie 并写入到response
        # 登录成功
        if username == "zhangsan" and password == '1234':
            response = redirect("/home/") # 重定向home页面
            # 设置cookie和过期时间 cookie不能有中文名称
            response.set_cookie("user", "zhangsan")  # 默认浏览器关闭则cookie失效
            # response.set_cookie("user",username,max_age=100)# cookie的失效时间 100秒
            # response.set_cookie("user",username,expires=datetime.datetime(2023,12,12)) # 设置指定的时间之后过期
            return response
        else:
            return "用户名或者密码失败"


@cookie_blue.route("/logout/")
def logout():
    # 删除cookie
    response=redirect("/home/")
    response.delete_cookie("user")
    return response